Telegram Group & Telegram Channel
📝 Контроль объема логов в .NET-приложениях

В больших приложениях поток логов может быть огромным — это перегружает хранилище и снижает производительность.

Полное отключение детальных логов — плохое решение, ведь важные данные могут потеряться. Лучше использовать выборочное логирование.

.NET теперь поддерживает несколько стратегий выборочного логирования:

• Случайная выборка по вероятности

• Выборка по трассировке

• Пользовательские сэмплеры для гибкой настройки

Пример простого пользовательского сэмплера для .NET, который ограничивает вывод логов до примерно 1 сообщения в секунду:
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var key = eventId.Id.ToString();

var now = DateTime.UtcNow;

var lastTime = _lastLoggedTimes.GetOrAdd(key, DateTime.MinValue);

if ((now - lastTime) >= _interval)
{
_lastLoggedTimes[key] = now;

var message = formatter(state, exception);
Console.WriteLine($"[{now:O}] {logLevel}: {message}");
// Здесь вместо Console.WriteLine — вызов реального логгера
}
else
{
// Пропускаем лог, чтобы не создавать слишком много записей
}
}


Это может снизить затраты на хранение и обработку логов без потери ключевой информации.

➡️ Блог разработчиков .NET

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/csharpproglib/5908
Create:
Last Update:

📝 Контроль объема логов в .NET-приложениях

В больших приложениях поток логов может быть огромным — это перегружает хранилище и снижает производительность.

Полное отключение детальных логов — плохое решение, ведь важные данные могут потеряться. Лучше использовать выборочное логирование.

.NET теперь поддерживает несколько стратегий выборочного логирования:

• Случайная выборка по вероятности

• Выборка по трассировке

• Пользовательские сэмплеры для гибкой настройки

Пример простого пользовательского сэмплера для .NET, который ограничивает вывод логов до примерно 1 сообщения в секунду:

public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var key = eventId.Id.ToString();

var now = DateTime.UtcNow;

var lastTime = _lastLoggedTimes.GetOrAdd(key, DateTime.MinValue);

if ((now - lastTime) >= _interval)
{
_lastLoggedTimes[key] = now;

var message = formatter(state, exception);
Console.WriteLine($"[{now:O}] {logLevel}: {message}");
// Здесь вместо Console.WriteLine — вызов реального логгера
}
else
{
// Пропускаем лог, чтобы не создавать слишком много записей
}
}


Это может снизить затраты на хранение и обработку логов без потери ключевой информации.

➡️ Блог разработчиков .NET

🐸Библиотека шарписта #буст

BY Библиотека шарписта | C#, F#, .NET, ASP.NET




Share with your friend now:
tg-me.com/csharpproglib/5908

View MORE
Open in Telegram


Библиотека шарписта | C F NET ASP NET Telegram | DID YOU KNOW?

Date: |

How to Use Bitcoin?

n the U.S. people generally use Bitcoin as an alternative investment, helping diversify a portfolio apart from stocks and bonds. You can also use Bitcoin to make purchases, but the number of vendors that accept the cryptocurrency is still limited. Big companies that accept Bitcoin include Overstock, AT&T and Twitch. You may also find that some small local retailers or certain websites take Bitcoin, but you’ll have to do some digging. That said, PayPal has announced that it will enable cryptocurrency as a funding source for purchases this year, financing purchases by automatically converting crypto holdings to fiat currency for users. “They have 346 million users and they’re connected to 26 million merchants,” says Spencer Montgomery, founder of Uinta Crypto Consulting. “It’s huge.”

Библиотека шарписта | C F NET ASP NET from ar


Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET
FROM USA